package com.jqq.arrays_;

import java.util.Arrays;
import java.util.List;

/**
 * @author 姬倩倩
 * @version 1.0
 */
public class ArrayMethod02 {
    public static void main(String[] args) {
        Integer[] arr = {1, 2, 3, 5, 7};
        //binarySearch 按指定key值二分查找元素，返回索引，要求数组原先必须升序排好
        int index = Arrays.binarySearch(arr, 8);
        //如果不存在要查找的元素，返回 -(low + 1);  // key not found.
        //low代表应该存在的位置，比如8比7大，应该存在于索引为5的位置，low=5
        //返回 -(5+1) = -6
        System.out.println(index);

        //copyOf  数组拷贝
        //拷贝arr的前arr.length-1个元素到新数组
        Integer[] newArr = Arrays.copyOf(arr, arr.length-1);
        System.out.println("===copy后的数组===");
        System.out.println(Arrays.toString(newArr));
        //如果要拷贝的长度>arr.length，就在数组的后边增加null
        //[1, 2, 3, 5, 7, null]
        //如果要拷贝的长度<0，就抛出异常NegativeArraySizeException

        //fill  数组填充
        //把数组内的所有元素都换成要填充的元素
        Integer[] num = {9, 3, 2};
        Arrays.fill(num,99);
        System.out.println(Arrays.toString(num));

        //equals  比较两个数组的元素内容是否完全一致
        int[] arr1 = {1, 2, 3};
        int[] arr2 = {1, 3, 3};
        System.out.println(Arrays.equals(arr1, arr2));

        //asList  将这一组值转换成list
        //会把括号内的数据转换成《Integer》的List集合
        //asList编译类型 List<Integer>
        //    运行类型 java.util.Arrays#ArrayList
        List<Integer> asList = Arrays.asList(2,3,4,5);
        System.out.println("asList=" + asList);

    }
}
